/**
 * @filename:ReceiveService Jan 14, 2025
 * @project Wonder Vue Admin Api  1.1.0
 * Copyright(c) 2022 Wonder Co. Ltd. 
 * All right reserved. 
 */
package com.wonder.app.service;
import cn.hutool.json.JSONObject;
import com.vtuzx.core.bean.dto.VtuzxMap;
import com.wonder.app.domain.Receive;
import com.wonder.app.request.ReceiveRequest;
import com.wonder.common.common.AjaxResult;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
/**   
 * @Description:TODO(收料通知单服务层)
 * @version: 1.1.0
 * @author: Wonder
 * 
 */
public interface ReceiveService extends IService<Receive> {

    
    /**
     * 验证收料通知单信息
     * 
     * @param receive
     * @param type
     * @return 结果
     */
    public String validate(Receive receive,String type);   
   
	
	 /**
	 * Description:收料通知单分页返回
	 * @param request//检索条件
	 * @param page//分页参数
	 * @return IPage<Receive>   //分页记录
	 */
    public IPage<Receive> selectList(ReceiveRequest request, Page<Receive> page);

	VtuzxMap purweight(String bh, String sl) throws Exception;

	Boolean firpurweight(String bh);

	/**
	 * 收料通知单列表(手机端)
	 * @param map
	 * @return
	 */
    Map<String, Object> getReceiveListPhone(Map<String, Object> map);


	Boolean purweight(Map<String, Object> data);

	/**
	 * 详情receive
	 * @param map
	 * @return
	 */
	Map<String, Object> getReDetail(Long user_id,Map<String, Object> map)  throws Exception;

	/**
	 * 创建收料同通知单(web端)
	 * @param userName
	 * @param map
	 * @return
	 */
    Boolean createReceive(String userName, Map<String, Object> map);

	/**
	 * 金蝶审核收料通知单
	 * @param map
	 * @return
	 */
	boolean audit(JSONObject map) throws Exception;

	/**
	 * 查询收料通知单明细(手机端)
	 * @param map
	 * @return
	 */
    Map<String, Object> getReceiveDetail(Long user_id,Map<String, Object> map) throws Exception;

	/**
	 * 金蝶反审收料通知单
	 * @param map
	 * @return
	 * @throws Exception
	 */
	boolean unAudit(JSONObject map) throws Exception;

	/**
	 * 收料通知单行关闭
	 * @param map
	 * @return
	 */
	boolean receiveClose(JSONObject map)  throws Exception;

	Map<String, Object> getStockList(Long user_id,Map<String, Object> map)throws Exception;
}
